package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.model.SicControle;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Ctltc001
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Ctltc001 {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Ctltc001.jsp";
	private String versao;
	private String operacao;
	private String dataCorrente;
	private String horaCorrente;
	private String diacntChassi;
	private String diacntRequer;
	private String diacntEndere;
	private String diacntIdenti;
	private String diacntDestin;
	private long datemi;
	private String tipdoc;
	private double valpag;
	private long dincntNdemid;
	private int dincntMatfun;
	private String nomfun;
	private String chave;
	private String conf;
	private String empresa;
	private String nomeClasse;
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "operacao";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;
	public SicControle siccontrole = new SicControle();

	// Classes views
	// Classes includes
	public Ctltc001() {
		inicializar(false);
	}

	public Ctltc001(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			versao = "9.9";
			operacao = "";
			datemi = 0;
			tipdoc = "";
			nomfun = "";
			chave = "";
			conf = "";
			empresa = "";
			nomeClasse = "";
			diacntChassi = "";
			diacntRequer = "";
			diacntEndere = "";
			diacntIdenti = "";
			diacntDestin = "";
			valpag = 0;
			dincntNdemid = 0;
			dincntMatfun = 0;
			empresa = sessao.getSisgsisp().getEmpresa();
			operacao = sessao.getSisgsisp().getOperacao();
			versao = sessao.getSisgsisp().getVersao();
		}
		dataCorrente = new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime());
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		sessao.getSisgsisp().setEmpresa(this.empresa);
		sessao.getSisgsisp().setOperacao(this.operacao);
		sessao.getSisgsisp().setVersao(this.versao);
		return true;
	}

	public String getVersao() {
		return versao;
	}

	public void setVersao(String versao) {
		this.versao = versao;
	}

	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

	public String getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(String dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public String getDiacntchassi() {
		return diacntChassi;
	}

	public void setDiacntchassi(String diacntChassi) {
		this.diacntChassi = diacntChassi;
	}

	public String getDiacntrequer() {
		return diacntRequer;
	}

	public void setDiacntrequer(String diacntRequer) {
		this.diacntRequer = diacntRequer;
	}

	public String getDiacntendere() {
		return diacntEndere;
	}

	public void setDiacntendere(String diacntEndere) {
		this.diacntEndere = diacntEndere;
	}

	public String getDiacntidenti() {
		return diacntIdenti;
	}

	public void setDiacntidenti(String diacntIdenti) {
		this.diacntIdenti = diacntIdenti;
	}

	public String getDiacntdestin() {
		return diacntDestin;
	}

	public void setDiacntdestin(String diacntDestin) {
		this.diacntDestin = diacntDestin;
	}

	public long getDatemi() {
		return datemi;
	}

	public void setDatemi(long datemi) {
		this.datemi = datemi;
	}

	public String getTipdoc() {
		return tipdoc;
	}

	public void setTipdoc(String tipdoc) {
		this.tipdoc = tipdoc;
	}

	public double getValpag() {
		return valpag;
	}

	public void setValpag(double valpag) {
		this.valpag = valpag;
	}

	public long getDincntndemid() {
		return dincntNdemid;
	}

	public void setDincntndemid(long dincntNdemid) {
		this.dincntNdemid = dincntNdemid;
	}

	public int getDincntmatfun() {
		return dincntMatfun;
	}

	public void setDincntmatfun(int dincntMatfun) {
		this.dincntMatfun = dincntMatfun;
	}

	public String getNomfun() {
		return nomfun;
	}

	public void setNomfun(String nomfun) {
		this.nomfun = nomfun;
	}

	public String getChave() {
		return chave;
	}

	public void setChave(String chave) {
		this.chave = chave;
	}

	public String getConf() {
		return conf;
	}

	public void setConf(String conf) {
		this.conf = conf;
	}

	public String getEmpresa() {
		return empresa;
	}

	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	}

	public String getNomeClasse() {
		return nomeClasse;
	}

	public void setNomeClasse(String nomeClasse) {
		this.nomeClasse = nomeClasse;
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}

	public SicControle getSiccontrole() {
		return siccontrole;
	}

	public void setSiccontrole(SicControle siccontrole) {
		this.siccontrole = siccontrole;
		diacntChassi = siccontrole.getNumeroChassi();
		diacntRequer = siccontrole.getNomeRequerente();
		diacntEndere = siccontrole.getEnderecoRequerente();
		diacntIdenti = siccontrole.getNumeroIdentidade();
		diacntDestin = siccontrole.getDestinoSolicitacao();
		valpag = siccontrole.getValorPago();
		dincntNdemid = siccontrole.getNumeroDocumento();
		dincntMatfun = siccontrole.getMatriculaFunc();
	}

}
